package com.eonmind.common.provider.entity.vip;

import com.eonmind.common.contract.enums.DelEnum;
import com.mongoplus.annotation.ID;
import com.mongoplus.annotation.collection.CollectionName;
import com.mongoplus.enums.IdTypeEnum;
import lombok.*;
import lombok.experimental.Accessors;
import lombok.experimental.FieldNameConstants;

/**
 * 用户订阅记录
 */
@Data
@CollectionName("subscription")
@FieldNameConstants
@AllArgsConstructor
@NoArgsConstructor
@Builder
@ToString
@Accessors(chain = true)
public class Subscription {
    /**
     * 订阅ID
     */
    @ID(type = IdTypeEnum.AUTO)
    private Long id;

    /**
     * 关联的用户ID
     */
    private Long userId;

    /**
     * 关联的套餐ID
     */
    private Long planId;

    /**
     * 订阅开始时间
     */
    private Long startDate;

    /**
     * 订阅结束时间
     */
    private Long endDate;

    /**
     * 取消时间（如未取消则为null）
     */
    private Long cancelledAt;

    /**
     * 订阅状态：active-活跃, expired-已过期, cancelled-已取消
     */
    private String status;


    /**
     * 已获得拉币总数
     */
    private Integer coinsEarned;

    /**
     * 最后领取拉币日期
     */
    private Long lastCoinDate;

    /**
     * 关联的支付记录ID
     */
    private Long paymentId;

    /**
     * 支付金额
     */
    private Double paymentAmount;

    /**
     * 支付方式：wechat-微信, alipay-支付宝, credit_card-信用卡
     */
    private String paymentMethod;

    /**
     * 创建时间
     */
    private Long createTime;

    /**
     * 更新时间
     */
    private Long updateTime;

    /**
     * 是否删除
     */
    private Integer del = DelEnum.UN_DEL.getCode();
}
